package com.example.gitclient.model;

/**
 * Git分支信息类
 */
public class Branch {
    private String name;
    private String lastCommitId;
    private String lastCommitMessage;
    private boolean isRemote;
    private boolean isCurrent;

    /**
     * 创建分支信息
     * @param name 分支名称
     * @param lastCommitId 最后一次提交ID
     * @param lastCommitMessage 最后一次提交信息
     * @param isRemote 是否为远程分支
     */
    public Branch(String name, String lastCommitId, String lastCommitMessage, boolean isRemote) {
        this.name = name;
        this.lastCommitId = lastCommitId;
        this.lastCommitMessage = lastCommitMessage;
        this.isRemote = isRemote;
        this.isCurrent = false;
    }

    /**
     * 获取分支名称
     * @return 分支名称
     */
    public String getName() {
        return name;
    }

    /**
     * 设置分支名称
     * @param name 分支名称
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取最后一次提交ID
     * @return 最后一次提交ID
     */
    public String getLastCommitId() {
        return lastCommitId;
    }

    /**
     * 设置最后一次提交ID
     * @param lastCommitId 最后一次提交ID
     */
    public void setLastCommitId(String lastCommitId) {
        this.lastCommitId = lastCommitId;
    }

    /**
     * 获取最后一次提交信息
     * @return 最后一次提交信息
     */
    public String getLastCommitMessage() {
        return lastCommitMessage;
    }

    /**
     * 设置最后一次提交信息
     * @param lastCommitMessage 最后一次提交信息
     */
    public void setLastCommitMessage(String lastCommitMessage) {
        this.lastCommitMessage = lastCommitMessage;
    }

    /**
     * 是否为远程分支
     * @return 是否为远程分支
     */
    public boolean isRemote() {
        return isRemote;
    }

    /**
     * 设置是否为远程分支
     * @param remote 是否为远程分支
     */
    public void setRemote(boolean remote) {
        isRemote = remote;
    }

    /**
     * 是否为当前分支
     * @return 是否为当前分支
     */
    public boolean isCurrent() {
        return isCurrent;
    }

    /**
     * 设置是否为当前分支
     * @param current 是否为当前分支
     */
    public void setCurrent(boolean current) {
        isCurrent = current;
    }

    /**
     * 获取显示名称
     * @return 显示名称
     */
    public String getDisplayName() {
        return isRemote ? "远程/" + name : name;
    }
}